#include<stdio.h>
int mul(int n, int k)
{
	--k;
	n *= n;
	if (k == 0)
		return n;
	else
		mul(n, k);
}
int main() {
	int n,k;
	long ret=1;
	scanf_s("%d %d", &n,&k);
	ret = mul(n, k-1);
	printf("%ld\n", ret);
	return 0;
}
//
//#include<stdio.h>
//int main() {
//    double arr[5][5];
//    for (int i = 0; i < 5; i++)
//    {
//        for (int j = 0; j < 5; j++)
//            scanf_s("%lf", *(arr + i) + j);
//    }
//    for (int k = 0; k < 5; k++)
//    {
//        printf("%.1lf,%.1lf,%.1lf,%.1lf,%.1lf,%.1lf\n",
//            *(*(arr + k) + 0),
//            *(*(arr + k) + 1),
//            *(*(arr + k) + 2),
//            *(*(arr + k) + 3),
//            *(*(arr + k) + 4),
//               arr[k][0] +
//               arr[k][1] +
//               arr[k][2] +
//               arr[k][3] +
//               arr[k][4]
//        );
//    }
//
//    return 0;
//}
//#include<stdio.h>
//
//int max3(int a, int b, int c) {
//    int max = a;
//    if (max < b)
//        max = b;
//    if (max < c)
//        max = c;
//    return max;
//}
//
//
//int main() {
//    int a, b, c;
//    double m;
//    scanf_s("%d %d %d", &a, &b, &c);
//    m = max3(a + b, b, c) * 1.0 / (max3(a, b + c, c) + max3(a, b, b + c));
//    printf_s("%.2lf", m);
//
//    return 0;
//}
//#include<stdio.h>
//int main() {
//	while (0)
//	{
//		printf("*");
//	}
//
//	return 0;
//}
//#include<stdio.h>
//
//
//int main()
//{
//    int i;
//    while ((scanf_s("%d", &i)) != EOF)
//    {
//        for (int j = 0; j <= i; j++)
//        {
//            for (int k = 0; k < (i - j) * 2; k++)
//            {
//                printf("%c", ' ');
//            }
//            for (int z = 0; z <= j; z++)
//            {
//                printf("%c", '*');
//            }
//            printf("\n");
//        }
//        for (int j = 0; j < i; j++)
//        {
//            for (int k = 0; k < (1 + j) * 2; k++)
//            {
//                printf("%c", ' ');
//            }
//            for (int z = 0; z < i - j; z++)
//            {
//                printf("%c", '*');
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}
//
//#include<stdio.h>
//int  main() {
//    int n;
//    while (scanf_s("%d", &n) != EOF) {
//        int i, j;
//        for (i = 0; i < n + 1; i++) {
//            for (j = 0; j <= n - i - 1; j++)
//                printf(" ");
//            for (j = 0; j <= i; j++)
//                printf("* ");
//            printf("\n");
//        }
//        for (i = 0; i < n; i++) {
//            for (j = 0; j <= i; j++)
//                printf(" ");
//            for (j = i; j < n; j++)
//                printf("* ");
//            printf("\n");
//        }
//    }
//    return 0;
//#include<stdio.h>
//int main() {
//    int n; 
//    while (~scanf_s("%d", &n))
//    {
//        for (int i = 0; i < n + 1; i++)
//        {
//            int j = 0;
//            for (j = 0; j <= n - i; j++)
//            {
//                printf(" ");
//            }
//            for (j = 0; j <= i; j++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//        for (int i = 0; i < n; i++)
//        {
//            int j = 0;
//            for (j = 0; j <= i + 1; j++)
//            {
//                printf(" ");
//            }
//            for (j = 0; j < n - i; j++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}
//#include<stdio.h>
//int main() {
//    int n;
//    while (~scanf_s("%d", &n))
//    {
//        for (int i = 0; i < n + 1; i++)
//        {
//            int j = 0;
//            for (j = 0; j <= n - i; j++)
//            {
//                printf(" ");
//            }
//            for (j = n; j <= n + i; j++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//        for (int i = 0; i < n; i++)
//        {
//            int j = 0;
//            for (j = 0; j <= i + 1; j++)
//            {
//                printf(" ");
//            }
//            for (j = 0; j < n - i; j++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}
//#include<stdio.h>
//int main()
//{
//    int n, i, j, k;
//    while (scanf_s("%d", &n) != EOF)
//        for (i = 1; i <= n; i++)
//        {
//            for (j = n - i; j >= 1; j--)
//            {
//                printf(" ");
//            }
//            for (k = 1; k <= i; k++)
//                printf("* ");
//            printf("\n");
//        }
//    return 0;
//}
//#include<stdio.h>
//int main() {
//    int n = 0;
//    while (~scanf_s("%d", &n))
//    {
//        for (int i = 0; i < n; i++)
//        {
//            int j = 1;
//            for (j = 1; j <= n - i; j++)
//            {
//                printf(" ");
//            }
//            for (int k = n; k < n + i; k++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n = 0;
//    int i = 0;
//    int j = 0;
//    while (~scanf_s("%d", &n))
//    {
//        for (i = 1; i <= n; i++)
//        {
//            for (j = 1; j <= (n - i); j++)
//            {
//                printf("  ");
//            }
//            for (j = 1; j <= i; j++)
//            {
//                printf("* ");
//            }
//            printf("\n");
//        }
//    }
//    return 0;
//}
//#include<stdio.h>
//#include<stdio.h>
//#include<math.h>
//int main() {
//    int m, n;
//    int a, b, c, sum;
//    int count = 0;
//    scanf_s("%d %d", &m, &n);
//    for (int i = m; i <= n; i++)
//    {
//        a = i % 100;
//        b = i / 10 % 10;
//        c = i / 100;
//        sum = pow(a, 3) + pow(b, 3) +  pow(c, 3);
//        if (sum == i)
//        {
//            printf("%d ", i);
//            count++;
//        }
//    }
//    if (count == 0)
//        printf("no");
//    return 0;
//}
//    int n, m;
//    scanf_s("%d %d", &n, &m);
//    int min ,max ,ret=0;
//    min = (n > m ? m : n);
//    max = (n > m ? n : m);
//    if (max % min)
//    {
//        while (max % min != 0)
//        {
//            ret = max % min;
//            max = min;
//            min = ret;
//        }
//    }
//    else
//        ret = min;
//    //for (int i = min; i >0; i--)
//    //{
//    //    if (max % i == 0 && min % i == 0)
//    //    {
//    //        ret = i;
//    //        break;
//    //    }
//    //}
//    long mul = ret + n * m / ret;
//    printf("%d", mul);
//    return 0;
//}